84 research outputs found

    Optimizing indirect branch prediction accuracy in virtual machine interpreters

    Get PDF
    Interpreters designed for efficiency execute a huge number of indirect branches and can spend more than half of the execution time in indirect branch mispredictions. Branch target buffers are the best widely available form of indirect branch prediction; however, their prediction accuracy for existing interpreters is only 2%–50%. In this paper we investigate two methods for improving the prediction accuracy of BTBs for interpreters: replicating virtual machine (VM) instructions and combining sequences of VM instructions into superinstructions. We investigate static (interpreter buildtime) and dynamic (interpreter run-time) variants of these techniques and compare them and several combinations of these techniques. These techniques can eliminate nearly all of the dispatch branch mispredictions, and have other benefits, resulting in speedups by a factor of up to 3.17 over efficient threaded-code interpreters, and speedups by a factor of up to 1.3 over techniques relying on superinstructions alone

    Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from Concrete Concurrency Models

    Get PDF
    The upcoming many-core architectures require software developers to exploit concurrency to utilize available computational power. Today's high-level language virtual machines (VMs), which are a cornerstone of software development, do not provide sufficient abstraction for concurrency concepts. We analyze concrete and abstract concurrency models and identify the challenges they impose for VMs. To provide sufficient concurrency support in VMs, we propose to integrate concurrency operations into VM instruction sets. Since there will always be VMs optimized for special purposes, our goal is to develop a methodology to design instruction sets with concurrency support. Therefore, we also propose a list of trade-offs that have to be investigated to advise the design of such instruction sets. As a first experiment, we implemented one instruction set extension for shared memory and one for non-shared memory concurrency. From our experimental results, we derived a list of requirements for a full-grown experimental environment for further research

    Adsorption of CO on a Platinum (111) surface - a study within a four-component relativistic density functional approach

    Get PDF
    We report on results of a theoretical study of the adsorption process of a single carbon oxide molecule on a Platinum (111) surface. A four-component relativistic density functional method was applied to account for a proper description of the strong relativistic effects. A limited number of atoms in the framework of a cluster approach is used to describe the surface. Different adsorption sites are investigated. We found that CO is preferably adsorbed at the top position.Comment: 23 Pages with 4 figure

    Combination of fast-ion diagnostics in velocity-space tomographies:Paper

    Get PDF
    Fast-ion Dα (FIDA) and collective Thomson scattering (CTS) diagnostics provide indirect measurements of fastion velocity distribution functions in magnetically confined plasmas. Here we present the first prescription for velocity-space tomographic inversion of CTS and FIDA measurements that can use CTS and FIDA measurements together and that takes uncertainties in such measurements into account. Our prescription is general and could be applied to other diagnostics. We demonstrate tomographic reconstructions of an ASDEX Upgrade beam ion velocity distribution function. First, we compute synthetic measurements from two CTS views and two FIDA views using a TRANSP/NUBEAM simulation, and then we compute joint tomographic inversions in velocity-space from these. The overall shape of the 2D velocity distribution function and the location of the maxima at full and half beam injection energy are well reproduced in velocity-space tomographic inversions, if the noise level in the measurements is below 10%. Our results suggest that 2D fast-ion velocity distribution functions can be directly inferred from fast-ion measurements and their uncertainties, even if the measurements are taken with different diagnostic methods

    A Portable Forth Engine

    No full text
    The Forth engine discussed in this paper is written in GNU C, which provides several extensions that are important for Forth implementation. The indirect threaded Forth engine is completely machine-independent, direct threading requires a few machine-specific lines for each machine. Using a portable language like GNU C encourages producing an engine with many primitives. In order to make the development of primitives easier and less error-prone, an automatic tool generates most of the code for a Forth primitive from the stack effect notation, even if the TOS is kept in a register. The engine is combined with the parts of the system written in Forth by loading a machine-independent image file that contains the executable Forth code in relocatable form
    • …
    corecore